home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-19 / iritsm3s.zip / CUBES.IRT < prev    next >
Text File  |  1991-11-05  |  1KB  |  48 lines

  1. #
  2. # Model from "Partitioning Polyhedral Objects into Nonintersecting parts'
  3. # by mark Segal and Carlo H. Sequin, IEE CG&A, January 1988, pp 53-67.
  4. #
  5.  
  6. b1 = box(vector(  0.2,  0.2,  0.2),  0.8,  0.8,  0.8);
  7. b2 = box(vector(  0.2,  0.2, -0.2),  0.8,  0.8, -0.8);
  8. b3 = box(vector(  0.2, -0.2,  0.2),  0.8, -0.8,  0.8);
  9. b4 = box(vector(  0.2, -0.2, -0.2),  0.8, -0.8, -0.8);
  10. b5 = box(vector( -0.2,  0.2,  0.2), -0.8,  0.8,  0.8);
  11. b6 = box(vector( -0.2,  0.2, -0.2), -0.8,  0.8, -0.8);
  12. b7 = box(vector( -0.2, -0.2,  0.2), -0.8, -0.8,  0.8);
  13. b8 = box(vector( -0.2, -0.2, -0.2), -0.8, -0.8, -0.8);
  14.  
  15. cubes = b1 ^ b2 ^ b3 ^ b4 ^ b5 ^ b6 ^ b7 ^ b8;
  16. free(b1); free(b2); free(b3); free(b4); free(b5); free(b6); free(b7); free(b8);
  17.  
  18. rot_cubes = cubes * rotx(30) * rotz(25);
  19.  
  20. intercrv = true;
  21. crvs_cubes = cubes + rot_cubes;
  22. # interact(list(crvs_cubes), 0);
  23. interact(list(crvs_cubes, cubes, rot_cubes), 0);
  24. free(crvs_cubes);
  25. intercrv = false;
  26.  
  27. u_cubes = cubes + rot_cubes;
  28. interact(list(u_cubes), 0);
  29.  
  30. i_cubes = cubes * rot_cubes;
  31. interact(list(i_cubes), 0);
  32.  
  33. s_cubes = cubes - rot_cubes;
  34. interact(list(s_cubes), 0);
  35.  
  36. view_mat = rotx(0);
  37. u_cubes = convex(u_cubes);
  38. i_cubes = convex(i_cubes);
  39. s_cubes = convex(s_cubes);
  40. save("cubes_u", list(view_mat, u_cubes));
  41. save("cubes_i", list(view_mat, i_cubes));
  42. save("cubes_s", list(view_mat, s_cubes));
  43.  
  44. free(u_cubes); free(i_cubes); free(s_cubes);
  45.  
  46. free(cubes);
  47. free(rot_cubes);
  48.